//
//  CALayer+TimesAnimation.h
//  WCGradientLayerExample
//
//  Created by 陈晓强 on 2016/12/21.
//  Copyright © 2016年 huangwenchen. All rights reserved.
//

#import <QuartzCore/QuartzCore.h>
//支持按时间进行动画的协议
@protocol LSTimesAnimationProtocol <NSObject>

/**
 添加动画时暂时储存的数值
 */
@property (strong, nonatomic) id animateValue;

/**
 当前动画的数值
 */
@property (strong, nonatomic) id currentValue;

/**
 动画key
 
 @return 动画key
 */
- (NSString *)animateKeypath;

@optional
/**
 进行动画的layer 默认自身
 
 @return 进行动画的layer
 */
- (CALayer *)animateLayer;

/**
 每个动画的持续时长 默认0.6秒
 
 @return 每个动画的持续时长
 */
- (CGFloat)per_duration;

- (void)animateToValue:(id)value atTime:(NSTimeInterval)beginTime;

- (void)animateWithValuesArray:(NSArray<id> *)values atTimes:(NSArray<id> *)times;

- (CABasicAnimation *)animationAtTime:(NSTimeInterval)time toValue:(id)value;

@end


@interface CALayer (TimesAnimation) <LSTimesAnimationProtocol, CAAnimationDelegate>

@end
